﻿using Microsoft.Xna.Framework;

namespace SceneManager
{
    /// <summary>
    /// Represents a spot light (ie for a spot)
    /// </summary>
    public class SpotLight : Light
    {
        /// <summary>
        /// Gets or sets the position of this light
        /// </summary>
        public Vector3 Position { get; set; }
        /// <summary>
        /// Gets or sets the direction of this light
        /// </summary>
        public Vector3 Direction { get; set; }
        /// <summary>
        /// Gets or sets the radius of this light
        /// </summary>
        public float Radius { get; set; }
        /// <summary>
        /// Gets or sets the angle of this light (in radians)
        /// </summary>
        public float Angle { get; set; }

        /// <summary>
        /// Initializes a new instance of the SpotLight class with specified color, intensity, position, direction, radius and angle
        /// </summary>
        /// <param name="color">The color of the light</param>
        /// <param name="intensity">The intensity of the light</param>
        /// <param name="position">The position of the light</param>
        /// <param name="direction">The direction of the light</param>
        /// <param name="radius">The radius of the light</param>
        /// <param name="angle">The angle of the light (in radians)</param>
        public SpotLight(Color color, float intensity, Vector3 position, Vector3 direction, float radius, float angle) : base(color, intensity)
        {
            Position = position;
            Direction = direction;
            Radius = radius;
            Angle = angle;
        }
    }
}